package cn.tedu.opp;

/**
 * @author: Dsi
 * @date: 2021/11/10 16:03
 * @description:该类用于抽象类中的成员测试
 */
public class AbstractionDemo03 {
    public static void main(String[] args) {
        Fruit f=new Apple();
    }
}
abstract class Fruit{
    /*1.抽象类中可以定义成员变量*/
    String name;
    int price;
    /*2.抽象类中可以定义常量*/
    final int a=10;
    /*2.1.抽象类中可以定义构造方法*/
    {
        System.out.println("抽象类的构造方法");
    }
    /*2.2.抽象类中可以定义静态方法*/
    static {
        System.out.println(1);
    }
    /*2.3.抽象类中可以定义普通方法*/
    public void clean(){
        System.out.println("抽象类的普通方法");
    }
    /*3.抽象类中可以都是普通方法*/
    /*4.如果一个类全是普通方法，为什么要被声明成抽象类呢？
    *因为抽象类不可被实例化，所以如果不想外界创建该类的对象
    *就可以把该类抽象化
     */
    /*5.抽象可以掺杂抽象方法*/
    public abstract void play();

}
class Apple extends Fruit{

    @Override
    public void play() {
        System.out.println("实现父类的抽象方法play");
    }
}